<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

require_once('../../config.php');
global $DB, $OUTPUT, $PAGE, $CFG, $COURSE, $USER;

require_once($CFG->dirroot . '/blocks/guestbook/lib.php');
require_once($CFG->dirroot . '/lib/outputcomponents.php');
require_once($CFG->libdir . '/outputcomponents.php');

require_once("guestbook_form.php");
$mform = new guestbook_form();

//Form processing and displaying is done here
if ($mform->is_cancelled()) {
    //Handle form cancel operation, if cancel button is present on form
} else if ($fromform = $mform->get_data()) {
  //In this case you process validated data. $mform->get_data() returns data posted in form.
} else {
  // this branch is executed if the form is submitted but the data doesn't validate and the form should be redisplayed
  // or on the first display of the form.
 
  //Set default data (if any)
  $mform->set_data($mform);
  //displays the form
  $mform->display();
}


/**
 * Обрабатывает _POST-запросы.
 */
function handle() {
    if ($_SERVER ["REQUEST_METHOD"] == "POST") {

        // Добавление сообщения, если были введены корректные имя и сообщение.
        if (empty($_POST ['name'])) {
            $this->nameerr = "Имя не может быть пустым.";
        } elseif (empty($_POST ['message'])) {
            $this->messageerr = "Сообщение не может быть пустым.";
        } else {
            $this->message = $this->clear_input($_POST ['message']);
            $this->name = $this->clear_input($_POST ['name']);
            $this->set_message();
            $this->redirect();
        }

        // Добавление комментария, если были введены корректные имя и сообщение.
        if (empty($_POST ['namec'])) {
            $this->nameerr = "Имя не может быть пустым.";
        } elseif (empty($_POST ['messagec'])) {
            $this->messageerr = "Сообщение не может быть пустым.";
        } elseif (!empty($_POST ['id'])) {
            $name = $this->clear_input($_POST ['namec']);
            $message = $this->clear_input($_POST ['messagec']);
            $message_id = $this->clear_input($_POST ['id']);
            $this->set_comment($message_id, $name, $message);
            $this->redirect();
        }

        // Удаление сообщения.
        if (!empty($_POST ['delete'])) {
            $this->messageid = $this->clear_input($_POST ['delete']);
            $this->delete_message($this->messageid);
        }

        // Удаление комментария.
        if (!empty($_POST ['deletec'])) {
            $comment_id = $this->clear_input($_POST ['deletec']);
            $this->delete_comment($comment_id);
        }

        // Изменение сообщения
        if (!empty($_POST ['update'])) {
            $id = $this->clear_input($_POST ['update']);
            if (!empty($_POST ['messageu'])) {
                $message = $this->clear_input($_POST ['messageu']);
                $this->update_message($id, $message);
            }
        }
    }
}

/**
 * Очищает входные данные от пробелов в начале и в конце,
 * делает бесопасными специальные символы.
 *
 * @param
 *            $data
 * @return string
 */
function clear_input($data) {
    $data = trim($data);
    $data = htmlspecialchars($data);
    return $data;
}
